package domain;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import type.EstadoSolitudType;
import dto.SolicitudArticuloDTO;

@Entity
@Table(name="solicitudes")
public class SolicitudArticulo implements Serializable{


	private static final long serialVersionUID = 1L;

	@ManyToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="idArticulo")
	private Articulo articulo;
	
	private int cantidadPedida;
	
	private int cantidadRecibida;
	
	@Enumerated(EnumType.STRING)
	private EstadoSolitudType estado;
	
	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="idSolicitud")
	private Integer id;
	
	private int idModulo;
	
	@ManyToOne
	public Articulo getArticulo() {
		return articulo;
	}

	public int getCantidadPedida() {
		return cantidadPedida;
	}

	public int getCantidadRecibida() {
		return cantidadRecibida;
	}

	public EstadoSolitudType getEstado() {
		return estado;
	}


	public Integer getId() {
		return id;
	}

	public int getIdModulo() {
		return idModulo;
	}



	
	public SolicitudArticuloDTO getVista() {
		SolicitudArticuloDTO a=new SolicitudArticuloDTO();
		a.setCantidadPedida(this.getCantidadPedida());
		a.setArticulo(this.getArticulo().getVista());
		a.setIdModulo(this.getIdModulo());
		a.setId(this.getId());
		a.setCantidadRecibida(this.getCantidadRecibida());
		a.setEstado(this.getEstado());
		return a;
	}

	public void setArticulo(Articulo articulo) {
		this.articulo = articulo;
	}





	public void setCantidadPedida(int cantidadPedida) {
		this.cantidadPedida = cantidadPedida;
	}

	public void setCantidadRecibida(int cantidadRecibida) {
		this.cantidadRecibida = cantidadRecibida;
	}

	public void setEstado(EstadoSolitudType estado) {
		this.estado = estado;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public void setIdModulo(int idModulo) {
		this.idModulo = idModulo;
	}

	
	
}
